﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CBE.Model;
using CBE.ServiceLogic;
using Common.UI.Report;
using CBE.UI.Control.Views;
using CBE.UI.Control.Presenters;

namespace CBE.UI.Control
{
    public class ReporteDemandaProductosController : GenericReportController<ReporteDemandaProductosView, ReporteDemandaProductosCriteria, ReporteDemandaProductosServiceLogic>
    {
        public override string Title
        {
            get
            {
                return "Reporte de demanda de productos";
            }
        }

        protected override Common.UI.Report.Views.FilterDataView CreateFilterDataView()
        {
            return new ReporteDemandaProductosFilterDataView();
        }

        protected override void CreateEntityPresentationModel()
        {
            this.ReportPresentationModel = new ReporteDemandaProductosPresentationModel(this.CreateFilterView(), this.CreateListView());
        }

        protected override void AddColumnDefinitions()
        {
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.CodigoPropertyName, "Código");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.DescripcionPropertyName, "Descripción producto");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.MarcaPropertyName, "Marca");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.PresentacionPropertyName, "Presentación");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.RazonSocialProveedorPropertyName, "Razón social proveedor");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.CantidadVentasPropertyName, "Cantidad total vendida");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.ImporteTotalPropertyName, "Importe total vendido");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.StockActualPropertyName, "Stock actual");
            this.ReportPresentationModel.AddColumnDefinition(ReporteDemandaProductosView.FechaUltimaCompraStringPropertyName, "Fecha de última compra de prod.");
        }
    }
}